﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Linq;
namespace QuanLyKhachSan
{
    public partial class frmThucAnThucUong_TTB : DevExpress.XtraEditors.XtraForm
    {
        bool them = false;
        DataClassesKhachSanDataContext db = new DataClassesKhachSanDataContext(SystemInfo.pub_ConnString);
        DialogResult drResult;

        public frmThucAnThucUong_TTB()
        {
            InitializeComponent();
        }

        private void frmThucAnThucUong_Load(object sender, EventArgs e)
        {
            this.fillData();
            this.fillNganhHang();
            this.fillLoaiDoiTuong();
        }

        private void fillData()
        {

            var doituong = from dt in db.DOI_TUONGs
                           select new {dt.NGANH_HANG.NH_TEN,dt.DT_ID, dt.DT_TEN,dt.DT_DVI,dt.DT_DONGIA, dt.DT_MIN,dt.DT_MAX,dt.DT_GHI_CHU};
            gridControlTATU.DataSource = doituong;

            
        }


        private void fillLoaiDoiTuong()
        {
            var loaiDoiTuong = db.LOAI_DOI_TUONGs;

            // var loaiDoiTuong = from aa in db.LOAI_DOI_TUONGs select aa;

            QuanLyDoiTuonglookUpEdit.Properties.DataSource = loaiDoiTuong;
            QuanLyDoiTuonglookUpEdit.Properties.ValueMember = "L_ID";
            QuanLyDoiTuonglookUpEdit.Properties.DisplayMember = "L_TEN";
        }

        private void fillNganhHang()
        {
            var nganhhang = from nh in db.NGANH_HANGs select nh;
            TenNganhHanglookUpEdit.Properties.DataSource = nganhhang;
            TenNganhHanglookUpEdit.Properties.DisplayMember = "NH_TEN";
            TenNganhHanglookUpEdit.Properties.ValueMember = "NH_ID";
        }

        private void btLuu_Click(object sender, EventArgs e)
        {
            db.SubmitChanges();
        }

        private void gridViewTATU_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
        {
            them = true;
        }

        private void gridViewTATU_RowUpdated(object sender, DevExpress.XtraGrid.Views.Base.RowObjectEventArgs e)
        {
            if (them == true )
            {
                DOI_TUONG dt = (DOI_TUONG)e.Row;
                THUC_UONG_THUC_AN_NHANH ta = new THUC_UONG_THUC_AN_NHANH();
                ta.DOI_TUONG = dt;
                db.THUC_UONG_THUC_AN_NHANHs.InsertOnSubmit(ta);
            }
        }

        private void gridViewTATU_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
        {
            if (e.Column.FieldName == "")
	{
        if (e.RowHandle >= 0)
        {
            e.DisplayText =  (e.RowHandle + 1).ToString ();
        }
	} 
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
          
            gridViewTATU.DeleteSelectedRows();

        }

        private void panelControl2_Paint(object sender, PaintEventArgs e)
        {

        }

        private void barButtonItem4_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.Close();
        }

        private void lookUpEditLoaiDoiTuong_EditValueChanged(object sender, EventArgs e)
        {
        //MessageBox.Show(lookUpEditLoaiDoiTuong.EditValue.ToString());
            // trang thiet bi
            if (Convert.ToInt32(QuanLyDoiTuonglookUpEdit.EditValue) == 1)
            {
                //var doituong = from dt in db.DOI_TUONGs
                //               where dt.TRANG_THIET_BI.DT_ID = dt.DT_ID
                //               select dt;
                //gridControlTATU.DataSource = doituong;
            }
                // thuc uong thuc an nhanh
            else
            {
                //var doituong = from dt in db.DOI_TUONGs
                //               where dt.THUC_UONG_THUC_AN_NHANH.DT_ID == dt.DT_ID
                //               select dt;
                //gridControlTATU.DataSource = doituong;
            }
        }

        private void panelControl6_Paint(object sender, PaintEventArgs e)
        {

        }



        private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

            if (TenNganhHanglookUpEdit.Text == "" || QuanLyDoiTuonglookUpEdit.Text == "" || TenDoiTuongtextEdit.Text == "" || DonGiatextEdit.Text == "" || DonViTinhtextEdit.Text == "" || TonKhoToiThieutextEdit.Text == "" || TonKhoToiDatextEdit.Text == "")
            {
                //đối quản lý đối tượng trang thiết bị hoặc thức ăn nhanh k được rỗng
                if (QuanLyDoiTuonglookUpEdit.Text == "")
                {
                    dxErrorNganhHangQuanLy.SetError(QuanLyDoiTuonglookUpEdit, "Vui lòng chọn ngành hàng cần quản lý");
                }
                //tên ngành hàng không được rỗng
                if (TenNganhHanglookUpEdit.Text == "")
                {
                    dxErrorProviderTenNH.SetError(TenNganhHanglookUpEdit, "Vui lòng chọn tên ngành hàng");
                }
                //tên đối tượng không được rỗng
                if (TenDoiTuongtextEdit.Text == "")
                {
                    dxErrorTen.SetError(TenDoiTuongtextEdit, "Tên đối tượng không được để trống");
                }
                //đơn giá không được rỗng
                if (DonGiatextEdit.Text == "")
                {
                    dxErrorDonGia.SetError(DonGiatextEdit, "Tên đối tượng không được để trống");
                }
                //đơn vị tính không được rỗng
                if (DonViTinhtextEdit.Text == "")
                {
                    dxErrorTen.SetError(DonViTinhtextEdit, "Tên đối tượng không được để trống");
                }
               
            }
           
               
            
            else
            {
                //tồn kho tối thiểu không được lớn hơn tồn kho tối đa
                if (Convert.ToInt32(TonKhoToiThieutextEdit.Text) > Convert.ToInt32(TonKhoToiDatextEdit.Text))
                {
                    dxErrorTonKhoToiDa.SetError(TonKhoToiDatextEdit, "Tồn kho tối đa phải lớn hơn tồn kho tối thiểu");
                }
                try
                {
                    DOI_TUONG objdoituong = new DOI_TUONG();
                    // trang thiết bị hay thức ăn nhanh
                   // int TTB_TAN = Convert.ToInt32(QuanLyDoiTuonglookUpEdit.Text);
                    int NH_ID = Convert.ToInt32(TenNganhHanglookUpEdit.EditValue);

                    objdoituong.NH_ID = NH_ID   ;
                    objdoituong.DT_TEN = TenDoiTuongtextEdit.Text;
                    objdoituong.DT_DONGIA = Convert.ToDecimal(DonGiatextEdit.Text);
                    objdoituong.DT_DVI = DonViTinhtextEdit.Text;
                    objdoituong.DT_MIN = Convert.ToInt32(TonKhoToiThieutextEdit.Text);
                    objdoituong.DT_MAX = Convert.ToInt32(TonKhoToiDatextEdit.Text);
                    objdoituong.DT_GHI_CHU = GhiChumemoEdit.Text;
                    objdoituong.L_ID = Convert.ToInt32(QuanLyDoiTuonglookUpEdit.EditValue);

                    if (Convert.ToInt32(QuanLyDoiTuonglookUpEdit.EditValue) == 1)
                    {
                        TRANG_THIET_BI trangThietBi = new TRANG_THIET_BI();
                        trangThietBi.DOI_TUONG = objdoituong;
                        db.TRANG_THIET_BIs.InsertOnSubmit(trangThietBi);

                    }
                    else
                    {
                        THUC_UONG_THUC_AN_NHANH thucAn = new THUC_UONG_THUC_AN_NHANH();
                        thucAn.DOI_TUONG = objdoituong;
                        db.THUC_UONG_THUC_AN_NHANHs.InsertOnSubmit(thucAn);
                    }
                    //gridControlTATU.DataSource = objdoituong;
                    //gridControlTATU.RefreshDataSource();
                    db.SubmitChanges();
                    XtraMessageBox.Show("Thêm đối tượng thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.fillData();
                }
                    catch(Exception dte){
                        XtraMessageBox.Show(dte.Message.ToString(), "Error");
                    }

            }
            //dxErrorProviderTenNH.SetError(TenNganhHanglookUpEdit, "Vui lòng chọn tên ngành hàng");
        }

        private void elseif()
        {
            throw new NotImplementedException();
        }


        private void XoabarButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try
            {
                int iRowHandle = gridViewTATU.FocusedRowHandle;
                if (iRowHandle > 0)
                {
                    drResult = XtraMessageBox.Show("Bạn có chắc muốn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    //gridViewTATU.DeleteSelectedRows();

                    //MessageBox.Show(gridViewTATU.GetRowCellValue(iRowHandle, gridColumn9).ToString());
                    if (drResult == DialogResult.Yes)
                    {
                        var doituong = (from dt in db.DOI_TUONGs
                                        where dt.DT_ID == int.Parse(gridViewTATU.GetRowCellValue(iRowHandle, gridColumn9).ToString())
                                        select dt).Single();

                        db.DOI_TUONGs.DeleteOnSubmit(doituong);
                        db.SubmitChanges();
                        this.fillData();
                    }                    
                }
            }
            catch (Exception edel)
            {
                XtraMessageBox.Show("Xóa bị lỗi : " + edel.Message.ToString(), "Thông báo", MessageBoxButtons.OK);
            }
        }

      

      
    }
}